package edu.hunau.cxb19.basic.class07;

/**
 *
 * @author hb
 *
 *         2020-02-17 15:00:32
 */
public class ArrayTest {
	public static void main(String[] args) {
//		int[] arry = { 1, 2, 3, 4 };// 底层new int[]{1,2,3,4}
//		int[] a01 = arry;
//		int a = 1;
//		chageValue(arry, a);
//		System.out.println(arry[1]);// 99
//		System.out.println(a);// 1
//
//		int max = parseMax(arry);
//		System.out.println(max);

		int[] arry = { 1, 2, 3, 4, 5 };
		reverse02(arry);
		for (int i = 0; i < arry.length; i++) {
			System.out.print(arry[i] + "  ");
		}

	}

	public static void reverse02(int[] source) {
		for (int min = 0, max = source.length - 1; min <= max; min++, max--) {
			// 交换数据
			int temp = source[min];
			source[min] = source[max];
			source[max] = temp;

		}

	}

	/**
	 * 实现一个数组中数据的反转
	 * 
	 * @param source
	 * @return
	 */
	public static int[] reverse(int[] source) {
		// 创建一个和原数组长度相同的数组
		int[] target = new int[source.length];
		// 从后向前遍历原数组
		for (int i = source.length - 1, j = 0; i >= 0; i--) {
			target[j++] = source[i];
		}

		return target;
	}

	/**
	 * 获得数组中的最大值
	 * 
	 * @param arr
	 * @return
	 */
	public static int parseMax(int[] arr) {
		// 假设第一个数据为最大值
		int max = arr[0];
		for (int i = 1; i < arr.length; i++) {
			if (arr[i] > max) {
				// 覆盖max的数据
				max = arr[i];
			}
		}
		return max;
	}

	/**
	 * 返回一个数组类型的结果
	 * 
	 * @return
	 */
	public static int[] initArray(int length) {

		return new int[length];

	}

	/**
	 * 数组作为一个参数
	 * 
	 * @param arr
	 * @param a
	 */

	public static void chageValue(int[] arr, int a) {
		arr[1] = 99;
		a = 100;
	}
}
